פרק 2- תכנות. socketים ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

Similar documents
DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

מדריך למשתמש התקנה עצמית

מדריך למשתמש התקנה עצמית

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

7 קרפ תויגול,תויטמתירא תודוקפ הזזהו

שאלון ד' הוראות לנבחן

שאלון ו' הוראות לנבחן

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

שאלון ו' הוראות לנבחן

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

A R E Y O U R E A L L Y A W A K E?

מדריך לניהול VPS טריפל סי מחשוב ענן בע"מ.

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מהי שפת ג'אווה? מה זה? IDE

תוכן כתובות פרטיות וציבוריות... 7

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

(MODULE E) ב ה צ ל ח ה!

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

מדריך שימוש בדואר האלקטרוני

לאחר מכן נוכל לכתוב תוכניות שכוללות אלגוריתמים

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

מדריך למשתמש בשירות. yes MultiRoom

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

Genetic Tests for Partners of CF patients

Operating Systems, 142. Practical Session 12 File Systems, part 2

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

מדור מערכות מידע פיננסיות

ASP.Net MVC + Entity Framework Code First.

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

Parallel Processing. Administration. Dr. Guy Tel-Zur.

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

אנגלית (MODULE E) בהצלחה!

פרוטוקול HTTP הפונקציה header שליחת מידע דחוס. עבודה עם cookies Haim Michael. All Rights Reserved.

FindText (SFX) UniSearch (Metalib) Jair de Marcas University of Haifa Library Periodicals Department

אבטחת מחשבים ורשתות סמסטר חורף תשע ב (2011)

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

אבטחת מחשבים ורשתות סמסטר חורף תשע ב (2011) הרצאה 6 איומים על רשתות מחשבים הרצאה 6 אבטחת מחשבים ורשתות חורף תשע ב

פירוט מושג ATM Adaptation Layer

מבוא למחשב בשפת פייתון

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

המבנה הגאומטרי של מידה

מבוא לשפת C מבוא לשפת סי - תירגול 1

NTFS ADS Magic Tricks

מבוא לשפת C תירגול 1: מבוא מבוא לשפת סי - תירגול 1

Patents Basics. Yehuda Binder. (For copies contact:

Visual C# Express Edition 2005

הקדמה בדיקת תמיכה ב- SSL מאת עידו קנר

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

מדריך שימוש והתקנה של office

ASTM UL / FM / BS abesco

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתרבות סייבר שיעור מס

Hosted Exchange 2010 מדריך טריפל סי מחשוב ענן בע"מ.

נתב / TP LINK TL WR541G / TL WR641G

מושגים בסיסיים תלמידים והורים יקרים,

חטיבת הביניים "יונתן" עבודה לקיץ באנגלית לבוגרי כיתה עבודה נעימה!

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

Windows 7/8. כולל סלולר, טאבלט, ממשק Metro ועוד. Windows 7 Configuring

Expressions (ex 8) Wild World (ex 7) Cars (ex 9)

הצעת תשובות לשאלות בחינת הבגרות אנגלית

מקוון Sharing and Playing: Serious Games and Collaboration in Online Education

לשרטוט חשמלי בתוכנת OrCad-Capture

המערכת מורכבת מהאובייקטים הפסיביים הבאים:.Pool. Purifier. .Purifier בממשק מוגדרת המתודה

מיקוד באנגלית. Module D. New Program in English Literature. Option 1 שאלון אינטרני מספר שאלון אקסטרני מספר 414

FULL ARTICLE ACTIVE DIRECTORY

Practical Session No. 13 Amortized Analysis, Union/Find

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

תכנות בטוח חלק ב ' מאת עידו קנר

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

FULL ARTICLE ACTIVE DIRECTORY

SPSS 10.0 FOR WINDOWS

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

פרוטוקולים לניתוב ברשת הרחבה פרק 5

sharing food intro price & extra drinks * ניתן להזמין מנות כשרות בתאום מראש for good memories

הצגת המשחק תלמידים משחקים סיום. פתיחה 12 min. min. min. min פתיחה. Copyright 2015

Depth-First Search DFS

קובץ לימוד י"ג אייר ר' ישראל ארי' ליב שניאורסון לה ק ואנגלית תרס"ו-תשי"ב ( )

Transcription:

פרק 2- תכנות socketים ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים מאת 1

socket מהי תקשורת שרת לקוח מהו socket נכתוב שרת ולקוח בשפת,python השרת והלקוח יתקשרו ביניהם: בעזרת שליחת הודעות העברת קבצים תמונות וכו' 2 ברק גונן

שרת,server לקוח - client צורת התקשורת הנפוצה ביותר באינטרנט ה- server מספק שירות כלשהו ה- client פונה ל- server כדי להשתמש בשירות התקשורת בין השרת והלקוח מתבצעת על ידי socket 3 ברק גונן

Socket הוא נקודת קצה של חיבור בין שני רכיבים אם רוצים להעביר מידע בין מחשבים, צריך לקשר ביניהם גם העברת מידע בין תוכנות שרצות על אותו מחשב מצריכה קישור נקודות הכניסה והיציאה של המידע מכונות socket אפשר להמשיל socket לצינור: ב- socket זורם מידע- זרם של בתים זרימת המידע היא דו כיוונית יש ל- socket נקודות התחלה וסיום ברק גונן 4

כדי ש- socket יוכל לשמש להעברת מידע, צריך להגדיר את נקודות הקצה שלו הגדרת נקודת קצה מתבצעת ע"י שני מזהים: מזהה הרכיב- עם איזה מחשב מתקיימת התקשורת? מזהה התהליך- על המחשב שאיתו מתקיימת התקשורת רצות מספר תוכנות. עם איזו תוכנה מתקיימת התקשורת? Socket הוא צירוף של 2 נקודות קצה- שרת ולקוח מזהה הרכיב: כתובת IP מזהה התהליך: מספר פורט Port IP מספר בטווח 0-65535 Socket מוגדר על ידי צירוף ו- Port 5 ברק גונן

שרת שכתובת ה- IP שלו היא 1.2.3.4 מאחסן דפי אינטרנט שונים השרת תומך בהעברת דפים רגילה HTTP או מאובטחת HTTPS שרת שכתובת ה- IP שלו היא 5.6.7.8 מספק מספר שירותים השרת תומך בהעברת קבצים, יודע לקשר בין כתובות דומיין לכתובות IP ויודע לטפל באימיילים לאיזה צירוף של IP ו- Port צריך לפנות לקוח שרוצה לבצע תשאול?DNS גלישה מאובטחת לאתר אינטרנט? תהליכים:.1 העברת קבצים FTP פורט 20.2 מענה לבקשות - DNS פורט 53 3. שליחה וקבל אימיילים SMTP פורט 25 תהליכים: 1. גלישה לדפי אינטרנט HTTP פורט 80 2. גלישה לדפי אינטרנט מאובטחים HTTPS פורט 443 שרת 1.2.3.4 שרת 5.6.7.8 6 ברק גונן

על השרת שכתובתו 1.2.3.4 הותקן דפדפן. תלמיד רוצה לגלוש מהשרת אל אתר אינטרנט, שמאוחסן על אותו השרת. לאיזה IP צריך לפנות? רמז: ה- IP אינו 1.2.3.4 תשובה: 127.0.0.1. משמעות IP זה הינה "כתובת הבית", כלומר, התוכנה מולה נפתח ה- socket נמצאת באותו המחשב 7 ברק גונן

הלקוח מנסה להתחבר לשרת IP Port, אם השרת מאזין בפורט הנ"ל, נוצר קשר חדש דו כיווני import socket AF_INET: Internet protocol (IP) SOCK_STREAM: Connection type (TCP) my_socket = socket.socket(socket.af_inet, socket.sock_stream) my_socket.connect(('127.0.0.1', 1729)) my_socket.send( Some Data To Send Here ) data = my_socket.recv(1024) my_socket.close() 8 ברק גונן

הורידו את השרת מהכתובת http://cyber.org.il/networks/c02/echo_server_stream.pyc שימרו את הקובץ למיקום C:\Cyber\echo_server_stream.pyc מה- line command הריצו את הפקודה: כיתבו כעת לקוח ש: python C:\Cyber\echo_server_stream.pyc מתחבר אל השרת )פורט 1729( שולח הודעה אל השרת מקבל את תשובת השרת ומדפיס אותה על המסך 9 ברק גונן

Hello כיתבו שרת שמקבל את פניית הלקוח ועונה לו import socket server_socket = socket.socket(socket.af_inet, socket.sock_stream) server_socket.bind(( 0.0.0.0', 1729)) server_socket.listen(1) client_socket, address = server_socket.accept() client_socket.send( Some Data To Send Here ) data = client_socket.recv(1024) client_socket.close() server_socket.close() 10 ברק גונן

כיתבו שרת שמקבל את פניית הלקוח ועונה לו Hello import socket 0.0.0.0: Listen to all IP s on this computer server_socket = socket.socket(socket.af_inet, socket.sock_stream) server_socket.bind(( 0.0.0.0', 1729)) server_socket.listen(1) client_socket, address = server_socket.accept() client_socket.send( Some Data To Send Here ) data = client_socket.recv(1024) client_socket.close() server_socket.close() 11 ברק גונן

Hello כיתבו שרת שמקבל את פניית הלקוח ועונה לו import socket server_socket = socket.socket(socket.af_inet, socket.sock_stream) server_socket.bind(( 0.0.0.0', 1729)) Define how many clients server_socket.listen(1) can wait for connection client_socket, address = server_socket.accept() client_socket.send( Some Data To Send Here ) data = client_socket.recv(1024) client_socket.close() server_socket.close() 12 ברק גונן

Hello כיתבו שרת שמקבל את פניית הלקוח ועונה לו import socket server_socket = socket.socket(socket.af_inet, socket.sock_stream) server_socket.bind(( 0.0.0.0', 1729)) server_socket.listen(1) client_socket, address = server_socket.accept() client_socket.send( Some Data To Send Here ) data = client_socket.recv(1024) client_socket.close() server_socket.close() Wait for client connection 13 ברק גונן

Hello כיתבו שרת שמקבל את פניית הלקוח ועונה לו import socket server_socket = socket.socket(socket.af_inet, socket.sock_stream) server_socket.bind(( 0.0.0.0', 1729)) server_socket.listen(1) client_socket, address = server_socket.accept() client_socket.send( Some Data To Send Here ) data = client_socket.recv(1024) client_socket: Communication with a specific client_socket.close() client server_socket.close() 14 ברק גונן

Hello כיתבו שרת שמקבל את פניית הלקוח ועונה לו import socket server_socket = socket.socket(socket.af_inet, socket.sock_stream) server_socket.bind(( 0.0.0.0', 1729)) server_socket.listen(1) client_socket, address = server_socket.accept() client_socket.send( Some Data To Send Here ) data = client_socket.recv(1024) client_socket.close() server_socket.close() Note: this is a tuple 15 ברק גונן

פיתחו שני חלונות command line בראשון הריצו את server.py בשני הריצו את client.py אפשר להשתמש ב- Pycharm, מומלץ כשרוצים לדבג 16 ברק גונן

בתרגיל 2.2 כתבתם לקוח שהתחבר לשרת קיים כעת כיתבו את השרת משכפל כל מידע שנשלח אליו ושולח חזרה לבצע טיפ: close בסוף התוכנית משחרר את משאבי המערכת ובעיקר את הפורט טיפ: מומלץ לעבוד עם pycharm במצב התוכנית קורסת לפני הגעה ל- close, הפורט )עצירת הדיבוג( דיבוג, כך שאם ניתן לשחרר את 17 ברק גונן

פרוטוקול Protocol הוא אוסף של חוקים שמאפשר לשתי ישויות או יותר להעביר ביניהן מידע דוגמה: סליחה אדוני כן? מאשר הקמת קשר שולח מידע שבע וחצי מה השעה בבקשה? תודה רבה מבקש להקים קשר מבקש מידע מנתק קשר ברק גונן

השרת מבצע פקודות שהלקוח שולח ומחזיר תשובה רשימת הפקודות: Exit Time, Name, Rand, )פירוט בספר( טיפים לביצוע התרגיל: קלט משתמש- פקודת raw_input הלקוח שולח כמות בתים קבועה- socket.send(4) השרת מחזיר כמות בתים משתנה ניתן לרפד את תשובת השרת באפסים וכך להגיע לאורך קבוע ניתן לכתוב בתחילת תשובת השרת את כמות הבתים בהמשך תכננו מראש את פרוטוקול התקשורת בין השרת ללקוח 19 ברק גונן

בתרגיל זה תכתבו שרת-לקוח של תוכנה שמאפשרת לטכנאי לבצע פעולות שונות על מחשב מרוחק: קבלת צילום מסך הפעלת תוכנות שונות העתקה של קובץ מהשרת הצגת תוכן תיקיה, מחיקת קבצים הדרכה נמצאת בספר הלימוד ובסרטונים הבאים: הנחיות לתרגיל 2.7 תרגיל 2.7 דוגמת הרצה טיפים לעבודה- בשקף הבא 20 ברק גונן

תכננו מראש את פרוטוקול התקשורת בין השרת והלקוח תכננו איך הלקוח יודע שהעברת הקובץ הסתיימה? socket.send(message) לא שולחת כלום אם message ריק בעבודה עם קבצים, יש סיכון שהלקוח יבקש לבצע פעולה על קובץ לא קיים העזרו בתנאים try, except כדי למנוע קריסה כדי לעבוד עם,subprocess.call יש צורך להעביר כפרמטר את המיקום המלא של התוכנה שתופעל 21 ברק גונן

שלב א'- היכנסו לקישור http://www.pythonware.com/products/pil/ שלב ב'- הורידו את pil לגרסת פייתון 2.7 לחלונות והתקינו במידה וההתקנה נכשלת, פיתחו cmd והקלידו: pip install PIL אם זה נכשל, היכנסו לספריה הבאה ונסו שוב להקליק את :pip install PIL cd c:\heights\portableapps\portablepython2*\app\scripts 22 ברק גונן

מודל עבודה שרת לקוח כתיבת socket פיתוח שרת ולקוח ב- python תכנון פרוטוקול תקשורת 23 ברק גונן